<?php

class LoginHandler {
	
	// Giltiga användare
	private $usernames = array(
		'user' => 'password',
		'admin' => 'adminpwd'
	);
	
	// Kollar om användaren är inloggad
	public function IsLoggedIn() {
		if (isset($_SESSION['username'])) {
			return true;
		}
		return false;
	}
	
	// Loggar in användaren
	public function DoLogin($username, $password) {		
		if (isset($this->usernames[$username]) && $this->usernames[$username] == $password) {
			$_SESSION['username'] = $username;
			return true;
		}
		return false;
	}
	
	// Loggar ut användaren
	public function DoLogout() {
		if (isset($_SESSION['username'])) {
			unset($_SESSION['username']);
		}
	}
	
	// Test för inloggningsfunktionalitet
	public function Test() {
		$this->DoLogout();
		
		if ($this->IsLoggedIn()) {
			echo "Fel i DoLogout eller IsLoggedIn. IsLoggedIn borde returnera false men returnerade true";
			return false;
		}
		
		if ($this->DoLogin("not_a_user", "not_a_password")) {
			echo "Fel! Inloggning lyckades trots att användaren inte finns";
			return false;
		}
		
		$this->DoLogout();
		
		if (!$this->DoLogin("user", "password")) {
			echo "Fel! Inloggning misslyckades trots korrekta uppgifter";
			return false;
		}
		
		if (!$this->IsLoggedIn()) {
			echo "Fel! Användaren bör vara inloggad men IsLoggedIn() returnerar false";
			return false;
		}
		
		$this->DoLogout();
		
		if ($this->DoLogin("user", "incorrect_password")) {
			echo "Fel! Inloggning lyckades trots felaktigt lösenord";
			return false;
		}
			
		return true;
	}
}